package cn.lzm.loadbalancer;

import cn.lzm.utils.SpiLoader;

/**
 * @author lzm
 * @Date 2024/11/7
 * @description 负载均衡器工厂（工厂模式，用于获取负载均衡器对象）
 */
public class LoadBalancerFactory {

    static {
        SpiLoader.load(LoaderBalancer.class);
    }

    /**
     * 默认负载均衡器
     */
    public static final LoaderBalancer DEFAULT_LOAD_BALANCER = new RoundRobinLoadBalancer();

    /**
     * 获取实例
     *
     * @param key 键名
     * @return 负载均衡器
     */
    public static LoaderBalancer getInstance(String key) {
        return SpiLoader.getInstance(LoaderBalancer.class, key);
    }

}
